#!/usr/bin/env python3
"""
系统初始化脚本
"""

import os
import sys
import subprocess
import shutil

def create_directories():
    """创建必要的目录"""
    directories = ['static', 'templates', 'reports', 'logs']
    for directory in directories:
        os.makedirs(directory, exist_ok=True)
        print(f"✅ 创建目录: {directory}")

def create_env_file():
    """创建环境变量文件"""
    env_file = '.env'
    if not os.path.exists(env_file):
        if os.path.exists('env_example.txt'):
            shutil.copy('env_example.txt', env_file)
            print("✅ 创建环境变量文件: .env")
            print("⚠️  请编辑 .env 文件，填入你的阿里云百练API密钥")
        else:
            print("❌ 未找到环境变量模板文件")
    else:
        print("✅ 环境变量文件已存在")

def install_dependencies():
    """安装依赖"""
    print("📦 安装Python依赖...")
    try:
        subprocess.run([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt'], 
                      check=True, capture_output=True)
        print("✅ 依赖安装完成")
    except subprocess.CalledProcessError as e:
        print(f"❌ 依赖安装失败: {e}")
        return False
    return True

def check_mongodb():
    """检查MongoDB是否可用"""
    try:
        import pymongo
        client = pymongo.MongoClient('mongodb://localhost:27017/', serverSelectionTimeoutMS=5000)
        client.server_info()
        print("✅ MongoDB连接正常")
        return True
    except Exception as e:
        print(f"❌ MongoDB连接失败: {e}")
        print("请确保MongoDB已启动")
        return False

def main():
    """主函数"""
    print("=" * 50)
    print("🚗 新能源汽车舆情分析系统 - 初始化")
    print("=" * 50)
    
    # 创建目录
    create_directories()
    
    # 创建环境变量文件
    create_env_file()
    
    # 安装依赖
    if not install_dependencies():
        print("❌ 初始化失败")
        sys.exit(1)
    
    # 检查MongoDB
    mongodb_ok = check_mongodb()
    
    print("\n" + "=" * 50)
    print("初始化完成!")
    print("=" * 50)
    
    if not mongodb_ok:
        print("⚠️  请启动MongoDB后再运行系统")
        print("   Docker: docker run -d --name mongodb -p 27017:27017 mongo:latest")
        print("   或安装本地MongoDB")
    
    print("\n下一步:")
    print("1. 编辑 .env 文件，填入你的阿里云百练API密钥")
    print("2. 运行: python run.py")
    print("3. 访问: http://localhost:8000")

if __name__ == "__main__":
    main()
